import logging
import os
from datetime import datetime

class Logger:
    def __init__(self, log_dir="logs"):
        # 动态生成日志文件名，格式为：YYYY-MM-DD_HH-MM-SS_test_log.txt
        log_file_name = f"{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}_test_log.txt"
        log_path = os.path.join(log_dir, log_file_name)

        # 确保日志目录存在
        os.makedirs(log_dir, exist_ok=True)

        self.logger = logging.getLogger("CustomLogger")
        self.logger.setLevel(logging.INFO)

        formatter = logging.Formatter(
            fmt='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
            datefmt='%Y-%m-%d %H:%M:%S'
        )

        # 添加控制台处理器（显示日志到控制台）
        console_handler = logging.StreamHandler()
        console_handler.setFormatter(formatter)
        self.logger.addHandler(console_handler)

        # 添加文件处理器（保存日志到文件）
        file_handler = logging.FileHandler(log_path, encoding='utf-8')
        file_handler.setFormatter(formatter)
        self.logger.addHandler(file_handler)

    def get_logger(self):
        return self.logger